RUMdjet – A DVI Driver for the HP DeskJet

W. Kaspar / H.-W. Kisker

Westfälische Wilhelms Universität Münster

Universitätsrechenzentrum April 1989

RUMdjet^{1} is a DVI driver for the HP DeskJet printer. It is part of an extensive TEX^{2} toolkit which one of us (H.-W. Kisker) has developed during the last year for the IBM PC^{2}. The driver is a dedicated version for IBM PC compatible computers running MS-DOS^{2}. Although it is derived from Beebe’s DVI driver family^{3}, no efforts have been made to achieve portability to other hardware or other operating systems. The state of the software is preliminary. The runtime behaviour is rather stable indeed, but the program is still under development. Above all the source code at the time is not up to our normal standard and will not be distributed by default. For those who are courageous enough to deal with more or less ‘writeonly’ code, the sources are available on special request. The final version of the driver including the sources will be available together with the above mentioned TEX toolkit in a few month.

Notes on Concepts and Facilties

The HP DeskJet is a pleasingly silent printer which offers an excellent 300 dpi print quality at a very attractive price. We consider it as a low cost laser printer alternative for everybody’s everyday use. The greatest disadvantage is that by default the printer comes without a single byte of RAM for downloading fonts. Even upgrading it with the maximum of two RAM cartridges will supply no more than 256 KB of font storage. For many documents this amount is far away from being sufficient. Therefore most of the print job has to be done in grafic mode. Unfortunately this brings two unpleasent aspects into account. First the driver has to manage a rather great bitmap (over 1 MB for a default DIN A4 page) and second printing in high resolution grafic mode is a very dull affair.

Both problems can be solved by reducing the resolution to 150 or even 100 dpi. RUMdjet offers this possibility as an option. For high quality output, however, the 300 dpi resolution is indispensable. This demands a careful handling of storage. The usual approach of swapping the bitmap to disk led

1. RUM = Rechenzentrum der Universität Münster

2. TEX is a trademark of the American Mathematical Society. MS-DOS is a trademark of Microsoft Corporation. IBM is a trademark of International Business Machines Corporation.

3. See: Nelson H.F. Beebe; A TEX DVI Driver Family. Center for Scientific Computation. University of Utah.

to an unacceptable increase of processing time. Better results we obtained by deviding the page from top to bottom into several pieces which were processed and printed independently. The multiple reading of the dvi file can be almost neglected.

Some other points concerning the driver software should be mentioned:

• RUMdjet does not need any swap space on disk. For us this point is rather important. All of the university PCs are connected to a campus network. Via the network, software including TEX can be loaded, but there is no disk capacity to store private data. So all the micro computers which are equiped just with a floppy disk drive can run TEX and RUMdjet, but cannot store a great bitmap.

• The output can be directed to a printer immediately. This helps to avoid the creation of big printer output files. RUMdjet is able to compute the next output part while the DeskJet is processing its internal print buffer. So the printer is busy without any interruption.

• An arbitrary number of arbitrary large fonts can be used in a document. If the RAM-storage is not sufficient to hold a character image, the image is ored line by line into the current bitmap immediately. The above mentioned toolkit contains a set of programs to insert pictures created by normal PC software into a TEX document. This is achieved by making a special font with possibly very large characters of every picture. RUMdjet can handle those fonts independent of their sizes.

• The output can be sent to a HP LaserJet of an arbitrary version as well.

• For a quick look at the printed document the resolution can be reduced to 150 or 100 dpi. This leads to a noticeable decrease of printing time and printfile size.

Usage

The calling conventions are taken over from Beebe’s driver family. Accordingly RUMdjet can be startet by the command:

     rumdjet  options  dvifile

The command options are (letter case is ignored):

-b Backwards order printing from the default.^{4}

-m# Reset magnification to #.^{4}

-o#:#:# Specify a page number, or range of page numbers, to be selected for output.^{4} Default is printing the whole document.

-pprinter Output to printer immediately. The value of printer can be LPT1, LPT2 or LPT3. Default is printing to a file.

-rresolution Specify output resolution. The value of resolution can be 300, 150 or 100. Default is 300.

-ssubfile Define an alternate font substitution file.^{4}

-x#unit The -x options specify the left margin of the TEX page on the output page in any of the indicated units.^{4}. Units can be: in, bp, cc, cm, dd, mm, pc, pf or sp. Default value is 1.00in.

-y#unit The -y options specify the top margin of the TEX page on the output page in any of the indicated units.^{4} Units can be: in, bp, cc, cm, dd, mm, pc, pf or sp. Default value is 1.00in.

The options of the prerelease have been reduced in relation to Beebe’s driver family. The final version will support the full set of options again.

The environment variable TEXFONTS specifies the directory path for finding font files. The variable TEXINPUT defines the directory path for finding files which are not in the working directory.

4. Cited from: Nelson H.F. Beebe; DVIxxx - Display TEX DVI Files on Assorted Output Devices.

Implementation Efficiency

According to Beebe we measured the runtime for processing this document on a ACER 1100. The ACER 1100 is a 386 based micro computer running at 16 MHz. Here are the results:

Operation  time  size
(using PK fonts) (sec) (kbytes)
RUMdjet (300 dpi) 100  942
RUMdjet (150 dpi)  67  271
RUMdjet (100 dpi)  50  134
dvijep (300 dpi)  62  60
dvitos (180 dpi)  176  827

The values for dvijep and dvitos have been added for comparison.

Outlook

The TEX toolkit for the PC which we mentioned above will be ready for distribution in the second part of 1989.

It will consist of:

• the DVI driver RUMdjet for the HP DeskJet (300, 150 and 100 dpi),

• the DVI driver RUMnec for the NEC P5/P6/P7 printer family (360 and 180 dpi),

• the DVI driver RUMview for a wide range of video cards including those with 1024×768 pixel resolution,

• the Program Adi2Pxl which converts Autodesk’s ADI pixel file format into TEX fonts,

• a set of conversion programs which converts the grafic output of nearly every PC Program to ADI file format and

• a set of utility programs to manipulate ADI files and TEX fonts including a font editor.

The RUMdjet driver itself will be extended by several additional features for example the possibility to specify a list of pathnames for searching pixel or TFM files.

Although we consider the released preliminary version of RUMdjet to be rather stable, we are of course highly interested in bugs or malefunctions which will show up during everyday use. Please don’t hesitate to write us if you run into an error.

Obtaining the Programm

• Get it from the file server listserv@dhdurz1.bitnet.

• Send one of the following formatted disks to the authors:

    31/2"  720 KB
    31/2"  1.44 MB
    51/4"  360 KB
    51/4"  1.2 MB

Addresses of the authors

Postal mail:

Wolfgang Kaspar University of Münster University Computing Center Einsteinstraße 60 D-4400 Münster Federal Republic of Germany H.-W. Kisker University of Münster University Computing Center Einsteinstraße 60 D-4400 Münster Federal Republic of Germany

E-mail:  urz86@dmswwu1a.bitnet          urz10@dmswwu1a.bitnet

phone:  49 2 51 83 24 73  49 2 51 83 24 67